﻿using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using GH.DBUtility;//请先添加引用
namespace GH.DAL
{
	/// <summary>
	/// 数据访问类工会年度法律援助统计表。
	/// </summary>
	public class LegalAid
	{
		public LegalAid()
		{}
		#region  成员方法

		/// <summary>
		/// 得到最大ID
		/// </summary>
		public int GetMaxId()
		{
		return DbHelperSQL.GetMaxID("单位", "工会年度法律援助统计表"); 
		}


		/// <summary>
		/// 是否存在该记录
		/// </summary>
		public bool Exists(int 单位,string 年份)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select count(1) from 工会年度法律援助统计表");
			strSql.Append(" where 单位="+单位+" and 年份='"+年份+"' ");
			return DbHelperSQL.Exists(strSql.ToString());
		}

		/// <summary>
		/// 增加一条数据
		/// </summary>
		public void Add(GH.Model.工会年度法律援助统计表 model)
		{
			StringBuilder strSql=new StringBuilder();
			StringBuilder strSql1=new StringBuilder();
			StringBuilder strSql2=new StringBuilder();
			if (model.单位 != null)
			{
				strSql1.Append("单位,");
				strSql2.Append(""+model.单位+",");
			}
			if (model.年份 != null)
			{
				strSql1.Append("年份,");
				strSql2.Append("'"+model.年份+"',");
			}
			if (model.厂级是否建立1 != null)
			{
				strSql1.Append("厂级是否建立1,");
				strSql2.Append("'"+model.厂级是否建立1+"',");
			}
			if (model.该委员会成员人数1 != null)
			{
				strSql1.Append("该委员会成员人数1,");
				strSql2.Append(""+model.该委员会成员人数1+",");
			}
			if (model.调解员培训人员 != null)
			{
				strSql1.Append("调解员培训人员,");
				strSql2.Append(""+model.调解员培训人员+",");
			}
			if (model.厂级是否建立2 != null)
			{
				strSql1.Append("厂级是否建立2,");
				strSql2.Append("'"+model.厂级是否建立2+"',");
			}
			if (model.该委员会成员人数2 != null)
			{
				strSql1.Append("该委员会成员人数2,");
				strSql2.Append(""+model.该委员会成员人数2+",");
			}
			if (model.监督员培训人数 != null)
			{
				strSql1.Append("监督员培训人数,");
				strSql2.Append(""+model.监督员培训人数+",");
			}
			if (model.厂级是否建立3 != null)
			{
				strSql1.Append("厂级是否建立3,");
				strSql2.Append("'"+model.厂级是否建立3+"',");
			}
			if (model.该委员会成员人数3 != null)
			{
				strSql1.Append("该委员会成员人数3,");
				strSql2.Append(""+model.该委员会成员人数3+",");
			}
			if (model.劳动争议件数 != null)
			{
				strSql1.Append("劳动争议件数,");
				strSql2.Append(""+model.劳动争议件数+",");
			}
			if (model.劳动争议职工人数 != null)
			{
				strSql1.Append("劳动争议职工人数,");
				strSql2.Append(""+model.劳动争议职工人数+",");
			}
			if (model.调节劳动争议件数 != null)
			{
				strSql1.Append("调节劳动争议件数,");
				strSql2.Append(""+model.调节劳动争议件数+",");
			}
			if (model.法律咨询人次 != null)
			{
				strSql1.Append("法律咨询人次,");
				strSql2.Append(""+model.法律咨询人次+",");
			}
			if (model.诉讼案件数 != null)
			{
				strSql1.Append("诉讼案件数,");
				strSql2.Append(""+model.诉讼案件数+",");
			}
			if (model.非诉讼案件数 != null)
			{
				strSql1.Append("非诉讼案件数,");
				strSql2.Append(""+model.非诉讼案件数+",");
			}
			strSql.Append("insert into 工会年度法律援助统计表(");
			strSql.Append(strSql1.ToString().Remove(strSql1.Length - 1));
			strSql.Append(")");
			strSql.Append(" values (");
			strSql.Append(strSql2.ToString().Remove(strSql2.Length - 1));
			strSql.Append(")");
			DbHelperSQL.ExecuteSql(strSql.ToString());
		}

		/// <summary>
		/// 更新一条数据
		/// </summary>
		public void Update(GH.Model.工会年度法律援助统计表 model)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("update 工会年度法律援助统计表 set ");
			if (model.厂级是否建立1 != null)
			{
				strSql.Append("厂级是否建立1='"+model.厂级是否建立1+"',");
			}
			if (model.该委员会成员人数1 != null)
			{
				strSql.Append("该委员会成员人数1="+model.该委员会成员人数1+",");
			}
			if (model.调解员培训人员 != null)
			{
				strSql.Append("调解员培训人员="+model.调解员培训人员+",");
			}
			if (model.厂级是否建立2 != null)
			{
				strSql.Append("厂级是否建立2='"+model.厂级是否建立2+"',");
			}
			if (model.该委员会成员人数2 != null)
			{
				strSql.Append("该委员会成员人数2="+model.该委员会成员人数2+",");
			}
			if (model.监督员培训人数 != null)
			{
				strSql.Append("监督员培训人数="+model.监督员培训人数+",");
			}
			if (model.厂级是否建立3 != null)
			{
				strSql.Append("厂级是否建立3='"+model.厂级是否建立3+"',");
			}
			if (model.该委员会成员人数3 != null)
			{
				strSql.Append("该委员会成员人数3="+model.该委员会成员人数3+",");
			}
			if (model.劳动争议件数 != null)
			{
				strSql.Append("劳动争议件数="+model.劳动争议件数+",");
			}
			if (model.劳动争议职工人数 != null)
			{
				strSql.Append("劳动争议职工人数="+model.劳动争议职工人数+",");
			}
			if (model.调节劳动争议件数 != null)
			{
				strSql.Append("调节劳动争议件数="+model.调节劳动争议件数+",");
			}
			if (model.法律咨询人次 != null)
			{
				strSql.Append("法律咨询人次="+model.法律咨询人次+",");
			}
			if (model.诉讼案件数 != null)
			{
				strSql.Append("诉讼案件数="+model.诉讼案件数+",");
			}
			if (model.非诉讼案件数 != null)
			{
				strSql.Append("非诉讼案件数="+model.非诉讼案件数+",");
			}
			int n = strSql.ToString().LastIndexOf(",");
			strSql.Remove(n, 1);
			strSql.Append(" where 单位="+ model.单位+" and 年份='"+ model.年份+"' ");
			DbHelperSQL.ExecuteSql(strSql.ToString());
		}

		/// <summary>
		/// 删除一条数据
		/// </summary>
		public void Delete(int 单位,string 年份)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("delete from 工会年度法律援助统计表 ");
			strSql.Append(" where 单位="+单位+" and 年份='"+年份+"' " );
			DbHelperSQL.ExecuteSql(strSql.ToString());
		}

		/// <summary>
		/// 得到一个对象实体
		/// </summary>
		public GH.Model.工会年度法律援助统计表 GetModel(int 单位,string 年份)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select  top 1  ");
			strSql.Append(" 单位,年份,厂级是否建立1,该委员会成员人数1,调解员培训人员,厂级是否建立2,该委员会成员人数2,监督员培训人数,厂级是否建立3,该委员会成员人数3,劳动争议件数,劳动争议职工人数,调节劳动争议件数,法律咨询人次,诉讼案件数,非诉讼案件数 ");
			strSql.Append(" from 工会年度法律援助统计表 ");
			strSql.Append(" where 单位="+单位+" and 年份='"+年份+"' " );
			GH.Model.工会年度法律援助统计表 model=new GH.Model.工会年度法律援助统计表();
			DataSet ds=DbHelperSQL.Query(strSql.ToString());
			if(ds.Tables[0].Rows.Count>0)
			{
				if(ds.Tables[0].Rows[0]["单位"].ToString()!="")
				{
					model.单位=int.Parse(ds.Tables[0].Rows[0]["单位"].ToString());
				}
				model.年份=ds.Tables[0].Rows[0]["年份"].ToString();
				model.厂级是否建立1=ds.Tables[0].Rows[0]["厂级是否建立1"].ToString();
				if(ds.Tables[0].Rows[0]["该委员会成员人数1"].ToString()!="")
				{
					model.该委员会成员人数1=int.Parse(ds.Tables[0].Rows[0]["该委员会成员人数1"].ToString());
				}
				if(ds.Tables[0].Rows[0]["调解员培训人员"].ToString()!="")
				{
					model.调解员培训人员=int.Parse(ds.Tables[0].Rows[0]["调解员培训人员"].ToString());
				}
				model.厂级是否建立2=ds.Tables[0].Rows[0]["厂级是否建立2"].ToString();
				if(ds.Tables[0].Rows[0]["该委员会成员人数2"].ToString()!="")
				{
					model.该委员会成员人数2=int.Parse(ds.Tables[0].Rows[0]["该委员会成员人数2"].ToString());
				}
				if(ds.Tables[0].Rows[0]["监督员培训人数"].ToString()!="")
				{
					model.监督员培训人数=int.Parse(ds.Tables[0].Rows[0]["监督员培训人数"].ToString());
				}
				model.厂级是否建立3=ds.Tables[0].Rows[0]["厂级是否建立3"].ToString();
				if(ds.Tables[0].Rows[0]["该委员会成员人数3"].ToString()!="")
				{
					model.该委员会成员人数3=int.Parse(ds.Tables[0].Rows[0]["该委员会成员人数3"].ToString());
				}
				if(ds.Tables[0].Rows[0]["劳动争议件数"].ToString()!="")
				{
					model.劳动争议件数=int.Parse(ds.Tables[0].Rows[0]["劳动争议件数"].ToString());
				}
				if(ds.Tables[0].Rows[0]["劳动争议职工人数"].ToString()!="")
				{
					model.劳动争议职工人数=int.Parse(ds.Tables[0].Rows[0]["劳动争议职工人数"].ToString());
				}
				if(ds.Tables[0].Rows[0]["调节劳动争议件数"].ToString()!="")
				{
					model.调节劳动争议件数=int.Parse(ds.Tables[0].Rows[0]["调节劳动争议件数"].ToString());
				}
				if(ds.Tables[0].Rows[0]["法律咨询人次"].ToString()!="")
				{
					model.法律咨询人次=int.Parse(ds.Tables[0].Rows[0]["法律咨询人次"].ToString());
				}
				if(ds.Tables[0].Rows[0]["诉讼案件数"].ToString()!="")
				{
					model.诉讼案件数=int.Parse(ds.Tables[0].Rows[0]["诉讼案件数"].ToString());
				}
				if(ds.Tables[0].Rows[0]["非诉讼案件数"].ToString()!="")
				{
					model.非诉讼案件数=int.Parse(ds.Tables[0].Rows[0]["非诉讼案件数"].ToString());
				}
				return model;
			}
			else
			{
				return null;
			}
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public DataSet GetList(string strWhere)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select 单位,年份,厂级是否建立1,该委员会成员人数1,调解员培训人员,厂级是否建立2,该委员会成员人数2,监督员培训人数,厂级是否建立3,该委员会成员人数3,劳动争议件数,劳动争议职工人数,调节劳动争议件数,法律咨询人次,诉讼案件数,非诉讼案件数 ");
			strSql.Append(" FROM 工会年度法律援助统计表 ");
			if(strWhere.Trim()!="")
			{
				strSql.Append(" where "+strWhere);
			}
			return DbHelperSQL.Query(strSql.ToString());
		}

        /// <summary>
        /// 获得数据列表
        /// </summary>
        public DataSet GetListSum(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select 年份,MIN(厂级是否建立1) AS 厂级是否建立1,SUM(该委员会成员人数1) AS 该委员会成员人数1,SUM(调解员培训人员) AS 调解员培训人员,MIN(厂级是否建立2) AS 厂级是否建立2,SUM(该委员会成员人数2) AS 该委员会成员人数2,SUM(监督员培训人数) AS 监督员培训人数,MIN(厂级是否建立3) AS 厂级是否建立3,SUM(该委员会成员人数3) AS 该委员会成员人数3,SUM(劳动争议件数) AS 劳动争议件数,SUM(劳动争议职工人数) AS 劳动争议职工人数,SUM(调节劳动争议件数) AS 调节劳动争议件数,SUM(法律咨询人次) AS 法律咨询人次 ,SUM(诉讼案件数)  AS 诉讼案件数  ,SUM(非诉讼案件数) AS 非诉讼案件数 ");
            strSql.Append(" FROM 工会年度法律援助统计表 ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            strSql.Append(" GROUP BY 年份");
            return DbHelperSQL.Query(strSql.ToString());
        }


		/// <summary>
		/// 获得前几行数据
		/// </summary>
		public DataSet GetList(int Top,string strWhere,string filedOrder)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select ");
			if(Top>0)
			{
				strSql.Append(" top "+Top.ToString());
			}
			strSql.Append(" 单位,年份,厂级是否建立1,该委员会成员人数1,调解员培训人员,厂级是否建立2,该委员会成员人数2,监督员培训人数,厂级是否建立3,该委员会成员人数3,劳动争议件数,劳动争议职工人数,调节劳动争议件数,法律咨询人次,诉讼案件数,非诉讼案件数 ");
			strSql.Append(" FROM 工会年度法律援助统计表 ");
			if(strWhere.Trim()!="")
			{
				strSql.Append(" where "+strWhere);
			}
			strSql.Append(" order by " + filedOrder);
			return DbHelperSQL.Query(strSql.ToString());
		}

        /// <summary>
        ///更新报表记录
        /// </summary>
        public bool UpdateList(System.Collections.Generic.List<GH.Model.工会年度法律援助统计表> listModel, int intUnion, string strCurrentYear)
        {
            try
            {
                System.Collections.Generic.List<String> listStr = new System.Collections.Generic.List<string>();
                //删除当前记录
                System.Text.StringBuilder strSqlDelete = new StringBuilder();
                strSqlDelete.Append("delete from 工会年度法律援助统计表 ");
                strSqlDelete.AppendFormat(" where 单位={0}", intUnion);
                strSqlDelete.AppendFormat(" AND   年份={0}", strCurrentYear);
                listStr.Add(strSqlDelete.ToString());
                //便利画面数据
                foreach (GH.Model.工会年度法律援助统计表 modDetail in listModel)
                {
                    StringBuilder strSqlInsert = new StringBuilder();
                    strSqlInsert.Append("insert into 工会年度法律援助统计表(");
                    strSqlInsert.Append("单位,年份,厂级是否建立1,该委员会成员人数1,调解员培训人员,厂级是否建立2,该委员会成员人数2,监督员培训人数,厂级是否建立3,该委员会成员人数3,劳动争议件数,劳动争议职工人数,调节劳动争议件数,法律咨询人次,诉讼案件数,非诉讼案件数)");
                    strSqlInsert.Append(" values (");
                    strSqlInsert.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15})", intUnion, strCurrentYear, modDetail.厂级是否建立1, modDetail.该委员会成员人数1, modDetail.调解员培训人员, modDetail.厂级是否建立2, modDetail.该委员会成员人数2, modDetail.监督员培训人数, modDetail.厂级是否建立3, modDetail.该委员会成员人数3, modDetail.劳动争议件数, modDetail.劳动争议职工人数, modDetail.调节劳动争议件数, modDetail.法律咨询人次, modDetail.诉讼案件数, modDetail.非诉讼案件数);
		            listStr.Add(strSqlInsert.ToString());
                }
                DbHelperSQL.ExecuteSqlTran(listStr);
            }
            catch
            {
                return false;
            }
            return true;
        }

        /// <summary>
        /// 获得数据列表
        /// </summary>
        public DataSet GetYearList(string strWhere)
        {
            string strSql = @"
                    SELECT 
                        DISTINCT 工会年度法律援助统计表.年份
	                FROM 工会年度法律援助统计表
                    WHERE
                ";
            if (strWhere.Trim() != "")
            {
                strSql = strSql + strWhere;
            }
            return DbHelperSQL.Query(strSql);
        }
		#endregion  成员方法
	}
}

